package com.stardata.liangshisq.tcslmon.service;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.IService;
import com.stardata.liangshisq.tcslmon.entity.BizBs;
import com.stardata.liangshisq.tcslmon.entity.OrderVo;
import com.stardata.liangshisq.tcslmon.entity.SaleDetail;
import org.jetbrains.annotations.NotNull;

import java.util.List;

/**
 * @author Samson Shu
 * @email shush@stardata.top
 * @date 2020/7/31 14:52
 */
@DS("canyin")
public interface BizBsService extends IService<BizBs> {
  default List<OrderVo> getOrderVosByIds(@NotNull List<Long> orderIds) {
    return this.getOrderVosByIds(orderIds, null, false,
        false, false);
  }
  /**
   * 根据营业流水id列表，查询生成 OrderVo 对象列表
   * @param orderIds 待查询的营业流水id列表
   * @param kitchenFlg 菜品厨房加工状态，如为null则不限
   * @param onlyCurrentShift 是否查询只是当班次的订单记录
   * @param needZeroQtyItems 是否查询已经退单为零的菜品项
   * @param onlyKitchenItems 是否只查询厨房待操作的菜品项
   * @return 生成的 OrderVo 对象列表
   */
  List<OrderVo> getOrderVosByIds(@NotNull List<Long> orderIds,
                                 Integer kitchenFlg,
                                 boolean onlyCurrentShift,
                                 boolean needZeroQtyItems,
                                 boolean onlyKitchenItems);

  /**
   * 根据营业流水id列表，查询生成 SaleDetail 对象列表
   * @param bizBsIds  待查询的营业流水id列表
   * @return 生成的 SaleDetail 对象列表
   */
  List<SaleDetail> getSaleDetailsByBsIds(@NotNull List<Long> bizBsIds);


}
